#ifndef _GP_DP8_H
#define _GP_DP8_H

int dp8XY_move(void * paramIn);

int dp8_single_move_steps(void * paramIn,int component);
int dp8_single_move_pos(void * paramIn,int component);

int dp8_single_init(void * paramIn,int component);
int dp8_module_init(void * paramIn);

void dp8ActFunc(void * paramIn,void * actResultOut);

int dp8_suck(void * paramIn);

int dp8_spit(void * paramIn);

int dp8_gettip(void * paramIn);

int dp8_droptip(void * paramIn);

int dp8_single_move_steps(void * paramIn,int component);

int dp8_transBoard(void * paramIn);

extern const float coeffmmToStep_Suck;//steps/mm //3200 steps<->4.8768mm
extern const float coeffmmToStep_Z;//steps/mm //3200 steps<->5.08mm

extern const float area_cross;// suck pump inner r = 2mm
extern const float coeffUlToSteps_suck;// coeffmmToStep_Suck / area_cross;

extern const float coeffUlToSteps_Z;// coeffmmToStep_Z / area_cross;

#define DP8_DROPTIP_POS_DROP 29000

int dp8_1XY_move(void * paramIn);

void dp8_1ActFunc(void * paramIn,void * actResultOut);

#define DP8_JAW_OPEN_POS 300
#define DP8_JAW_CLOSE_POS 100

#define DP8_JAW_OPEN_POS_FILM 1000
#define DP8_JAW_CLOSE_POS_FILM 600

#define DELTA_SEAL_Z_FILM -1900

#define DELTA_FILM_BOARD_X -30
#define DELTA_FILM_BOARD_Y 0
#define DELTA_FILM_BOARD_Z 3667


int dp8_1gettip(void * paramIn);
int dp8_1droptip(void * paramIn);
int dp8_1convertSuckParam(void * paramIn, void * paramOut);

int dp8_1_spit_once(void * paramIn,int zGoOrigin);
int dp8_1suck(void * paramIn);

int dp8XY_move_withoutZup(void * paramIn);
int dp8_1convertSpitParam_multi(void * paramIn, void * spitParamOut,void * layoutParamOut);

int dp8_1convertSpitParam(void * paramIn, void * paramOut);
int dp8_1_spit_multi(void * pstSpitParamIn,void * firstSpitPos,void * holeArr, int dataLen);

int dp8_get_container_type(int locTypeIn);

int dp8_spit_waste_liquid(void);

int dp8_pump_ctl(int isSuck, int volume);

int dp8_1_pump_ctl(int isSuck, int volume);

int dp8_single_move_pos(void * paramIn);
#endif